﻿using System;
using System.Collections.Generic;

namespace Sirocco.Data.Entity
{
    /// <summary>
    /// The contact entity </summary>
    public class Contact : ICloneable
    {
        private IList<Email> _emailList = new List<Email>(); 

        /// <summary>
        ///  Unique identifier for entity contact</summary>
        public long Id { get; set; }

        /// <summary>
        /// Salutation of the contact./// </summary>
        /// <example>Mr., Mrs.</example>
        public string Salutation { get; set; }

        /// <summary>
        /// The given name of the contact </summary>
        public string FirstName { get; set; }

        /// <summary>
        /// The last name or surname of the contact </summary>
        public string LastName { get; set; }
      
        /// <summary>
        /// Address of the contact. </summary>
        public string Address { get; set; }

        /// <summary>
        /// If the contact has extra salutation. This is the property to use. </summary>
        /// <example>Phd, Dr.</example>
        public string Suffix { get; set; }

        /// <summary>
        /// Gender of the contact. Female or Male. </summary>
        public Gender Gender { get; set; }

        /// <summary>
        /// The date of birth of the contact. Do not convert this to UTC. </summary>
        public DateTime DateOfBirth { get; set; }

        /// <summary>
        /// This method will do a shallow copy of the object. </summary>
        /// <returns>The cloned object.</returns>
        public object Clone()
        {
            return MemberwiseClone();
        }
    }
}
